[アップデート]各種RDSのストレージサイズが16TBまで拡張できるようになりました!
はじめに
こんにちは、yokatsukiです。
MySQL, MariaDB, Oracle DB, PostgreSQLにて、従来6TBまでだったRDSのSSDストレージサイズが16TBまで拡張できるようになりました。 また、従来は30,000IOPSだったプロビジョンドIOPSストレージボリュームは、今回のアップデートで最大40,000IOPSまで割り当てることができるようになりました。
試してみた
では、これらの機能を東京リージョンで試してみます。
MySQL
DBインスタンス起動画面のステップ3:DB詳細の指定画面です。
ストレージタイプをプロビジョンドIOPS(SSD)にして、割り当てが16384GBまで設定できることが確認できています。
IOPSの割り当ては、以下の条件を両方満たす範囲で設定することができ、その範囲外ではエラーになります。
- 1000〜4000IOPS
- ストレージ割り当てGB:IOPS=1:1〜1:50
詳細はAWSのドキュメントStorage for Amazon RDSの英語版をご確認下さい。
ストレージタイプを汎用(SSD)の場合も同様に16TBまでサイズ割り当てが可能です。
マグネティックの場合は、割り当ては3072GBまで可能です。
MariaDB
MariaDBの設定範囲は、MySQLと同じです。SSDを16TB、IOPSを40000まで設定できています。
Oracle DB
Oracle DBも同様です。ライセンスモデルを設定する前にストレージ割り当てを設定すると、昔の設定が残っていてエラーになってしまいますが、ライセンスモデルを設定した後は問題ありませんでした。全ての設定でSSDを16TB、IOPSを40000まで設定できるようになっています。
PostgreSQL
PostgreSQLも同様です。SSDを16TB、IOPSを40000まで設定できました。
動的拡張
AWS発表によると、「さらに、Amazon RDS は Amazon Elastic Block Store (Amazon EBS) Elastic Volumes を利用して、ストレージのスケーリングオペレーションに必要な時間を最小化します。」とあります。
裏側ではSSDのI/Oクレジットを消費しているようで、変換中は性能に影響が出るそうです。詳細は下記。
運用中にストレージサイズを変更するとどうなるかも試してみました。確認に使用したのは東京リージョンに作成した以下のデータベースです。
- エンジン:MySQL 5.6.37
- インスタンスクラス:db.m4.xlarge
- ストレージタイプ:汎用(SSD)
- ストレージサイズ:100GB→10TB
クライアントは同一セグメントに立てたEC2インスタンスを使いました。クライアントEC2インスタンスからMySQLにログインし、SQL文(SELECT, INSERT)の発行を行いつつ、MySQLに接続したままストレージサイズを100GBから10TBに拡張して、その間の挙動を確認しました。
以下がイベントの履歴です。
16:00ちょうどにストレージ変更の操作を発行したのですが、しばらく(3〜4分)したところで一度再起動が入って切断が発生しました。しかしそれ以降はクライアント側でSELECTやINSERT処理も特にエラーを見ることなく、おおよそ50分でストレージの拡張が終了しました。管理コンソールのモニタリングでは、イベント"Applying modification to allocated storage"が表示されているあたりから新しいストレージサイズ(10TB)が表示されるようになりました。
まとめ
いずれのデータベースも、最大容量16TB、IOPS40000まで拡張できることが確認できました。また、運用中のサイズ拡張も再起動が発生するものの、影響範囲は小さいことを確認しました。ストレージサイズ不足でRDSを諦めていた方、改めてご検討下さい。それでは、また。